#ifndef ENTECH_CONSTANTS
#define ENTECH_CONSTANTS

#include "WPILib.h"

// ALRIGHT
// So you know all those little numbers?
// The ones that represent every single thing plugged in on the robot.
// Sometimes there's like 5 of them for a single thing (yes, it's dumb)
// THAT'S WHY WE DECLARE THEM HERE RATHER THAN 15 DIFFERENT PLACES EACH
// Declare the type of variable, then the name, then give it a value

// NAMING CONVENTION
const uint32_t c_subsystemLocationType = 0;

// Joysticks
const uint32_t c_joystickLeftPort = 1;
const uint32_t c_joystickRightPort = 2;

// Operator Buttons
const uint32_t c_driveModeButton 					= 11;
const uint32_t c_automaticDriveButton 				= 12;
const uint32_t c_shooterLoadButton 					= 3;
const uint32_t c_shooterUnloadButton 				= 2;
const uint32_t c_shooterFireButton 					= 1;
const uint32_t c_shooterManualOverride 				= 4;
const uint32_t c_pickupOverride 					= 2;
const uint32_t c_prongsUpButton 					= 10;
const uint32_t c_prongsDownButton					= 5;
const uint32_t c_rollerArmBackSwitch				= 14;
const uint32_t c_rollerArmDeployedSwitch 			= 16;
const uint32_t c_rollerForwardSwitch				= 9;
const uint32_t c_rollerReverseSwitch				= 8;
//const uint32_t c_solenoidOperatorButton         	= 2;

// Drive Stuff
const uint32_t c_driveLeftMotor 					= 1;
const uint32_t c_driveRightMotor 					= 2;
const UINT32 c_leftEncoderAport 					= 3;
const UINT32 c_leftEncoderBport 					= 4;
const UINT32 c_rightEncoderAport 					= 1;
const UINT32 c_rightEncoderBport 					= 2;
static const double c_distancePerEncoderPulse 		= ((6.0 * 3.14159) / 360.0);
static const double c_encoderDeadzone 				= 5;

// Compressor/Pneumatics Stuff
const uint32_t c_compressorPressureSwitch           = 5;
const uint32_t c_compressorRelayPort                = 1;
const uint32_t c_prongsSolenoidDownChannel          = 1;
const uint32_t c_prongsSolenoidUpChannel            = 2;
//const uint32_t c_pneumaticForwardChannel            = 7;
//const uint32_t c_pneumaticReverseChannel            = 8;

// Digital Input Ports
const uint32_t c_shooterProxSensor 					= 7; //should be 10
const uint32_t c_rollerArmBackLimit 				= 8; //Limit Switch should be 9
const uint32_t c_rollerArmDeployedLimit				= 9; //Limit Switch 2 should be 8
const uint32_t c_prongsLimitSwitch 					= 6; // should be 7

// Analog Module Ports
const uint32_t c_sonarAnalogPort                    = 5; //dummy value

// Other Motors
const uint32_t c_shooterJaguarPort 					= 3;
const uint32_t c_rollerTalonChannel 				= 5;
const uint32_t c_rollerArmTalonChannel 				= 4;
//const uint32_t c_shooterCANID	= 3;

// Speed Constants
static const double c_shooterSpeed 					= -1 * .75;
static const double c_armSpeed 						= -1 * .3;
static const double c_rollerSpeed 					= 1;

// Other Constants
static const double c_dropPropTime                  = 0.2;


#endif
